Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

108
Views
responder al problema de visualización al presionar enter en lugar de hacer clic en "=" (Calculadora)

Todo mi código funciona excepto por una cosa: si uso los botones en pantalla primero, LUEGO uso el teclado, la respuesta no aparece. por ejemplo, si hago clic en 5+5 y luego presiono el botón "=" obtengo 10, pero si borro, luego escribo 5+5 y presiono Intro, la respuesta no aparece. Sin embargo, si la página se actualiza, puedo usar el teclado sin problemas, se muestra la respuesta.

En mi código, "ingresar" está configurado para hacer lo mismo que el botón "=".

Encontré el origen del problema (espero) pero no estoy seguro de cómo solucionarlo: en mi función de cómputo, cuando uso el teclado después de usar los botones, mi if(isNaN) devuelve un 1 en el archivo console.log (para poder encontrar dónde estaba fallando el código) No estoy seguro de por qué cree que lo que ingresa no es un número, porque funciona bien cuando no se tocan los botones.

Aquí está el código para el botón igual:

 equalsButton.addEventListener('click', button => { calculator.compute() calculator.updateDisplay() })

Aquí está el código para entrar:

 document.onkeyup = e => { //code for numbers 1-9 & operations// else if(e.key === "Enter") { calculator.compute() calculator.updateDisplay() console.log("the answer is " + calculator.compute()) }

Aquí está el código de la función de cálculo:

 compute() { let computation const prev = parseFloat(this.previousOperand) const current = parseFloat(this.currentOperand) if(isNaN(prev) || isNaN(current)) return 1 switch(this.operation) { case '+': computation = prev + current break case '-': computation = prev - current break case '*': computation = prev * current break case '÷': computation = prev / current break default: return } this.currentOperand = computation this.operation = undefined this.previousOperand = '' console.log(this.currentOperand) }

¡Cualquier ayuda es apreciada!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

en primer lugar, solo como práctica recomendada, no necesita crear un objeto en su función de clic si no necesita trabajar con el evento--

 equalsButton.addEventListener('click',() => { calculator.compute() calculator.updateDisplay() })

ahora,

la solución rápida es hacer que el evento keydown sea un alias para su función click() =>

 else if(e.key === "Enter") { equalsButton.click() // console.log("the answer is " + calculator.compute()) }

También me di cuenta de que llamas calculator.compute() como el primer paso de tu controlador de eventos 'Entrar', y luego lo vuelves a llamar en la instrucción console.log() , que borra el cálculo anterior (configurándolo en un cadena vacía aka NaN )

espero que todo esto ayude!

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!